Enterprises, including businesses, governments and educational institutions, rely on computer networks to share and exchange information. A computer network typically comprises a plurality of entities interconnected by a communications media. An entity may consist of any device, such as a host or end station, that sources (i.e., transmits) and/or receives network messages over the communications media. A common type of computer network is a local area network (“LAN”) which typically refers to a privately owned network within a single building or campus. In many instances, several LANs may be interconnected by point-to-point links, microwave transceivers, satellite hookups, etc. to form a wide area network (“WAN”) or subnet that may span an entire city, country or continent. One or more intermediate network devices are often used to couple LANs together and allow the corresponding entities to exchange information. A bridge, for example, may be used to provide a “bridging” function between two or more LANs. Alternatively, a switch may be utilized to provide a “switching” function for transferring information between a plurality of LANs at higher speed. Typically, the bridge or switch is a computer that includes a plurality of ports, which may be coupled to the LANs. The switching function includes receiving data at a source port that originated from a sending entity, and transferring that data to at least one destination port for forwarding to a receiving entity.
Another intermediate network device is called a router. A router is often used to interconnect LANs executing different LAN standards and/or to provide higher level functionality than bridges or switches. To perform these tasks, a router, which also is a computer having a plurality of ports, typically examines the destination address and source address of messages passing through the router. Routers typically operate at the network layer of the communications protocol stack utilized by the network, such as the Internet Protocol (IP) layer of the Transmission Control Protocol/Internet Protocol (TCP/IP) Reference Model. Furthermore, if the LAN standards associated with the source entity and the destination entity are dissimilar (e.g., Ethernet and Token Ring), the router may also alter the format of the packet so that it may be received by the destination entity. Routers also execute one or more routing protocols or algorithms, which are used to determine the paths along which network messages are sent.
To interconnect dispersed computer networks and/or provide Internet connectivity, many organizations rely on the infrastructure and facilities of Internet Service Providers (ISPs) rather than purchase and configure this equipment themselves. ISPs typically own one or more backbone networks that are configured to provide high-speed connection to the Internet. To interconnect private networks that are geographically diverse, an organization may subscribe to one or more ISPs and couple each of its private networks to the ISPs' equipment. Recently, some ISPs have also begun offering web-hosting services. Here, the ISP provides one or more web servers having Internet connectivity to an organization wishing to establish a presence on the Internet or World Wide Web. The organization and ISP typically enter into a service level agreement (SLA) that includes one or more traffic specifiers guaranteeing a level of service from the ISP and/or placing limits on the amount of resources that the subscribing organization will consume for a given charge. For example, an organization may agree that the traffic from its web site will not exceed a certain bandwidth (e.g., 1 Mbps). The ISP then monitors the traffic from the organization's web site to ensure that it complies with the relevant traffic specifiers and is thus “in-profile”. Traffic that exceeds the specifier (i.e., traffic that is “out-of-profile”) may be policed (i.e., dropped) or shaped (i.e., held until the traffic returns to its specified rate). Alternatively, the out-of-profile traffic may be subject to an accounting change (i.e., charged a higher rate) or marked, but nonetheless allowed to proceed by the ISP. If there is congestion, the ISP may drop such marked traffic first in an effort to relieve the congestion.
The policing and/or shaping of network traffic is typically performed in software by one or more intermediate devices within the ISP's network, such as routers and switches executing the Internetwork Operating System (IOS®) from Cisco Systems, Inc. of San Jose, Calif. First, the intermediate device identifies network messages as belonging to a given traffic flow by examining 5 network and transport layer message parameters (e.g., source and destination IP addresses, source and destination Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) port numbers and transport protocol). For web-hosting services, the ISP is most interested in IP source address and TCP/UDP source port, which are sufficient to associate the traffic flow with a specific web server and site. Based on this information, the software may perform a look-up to identify a corresponding SLA and traffic specifier that applies to this flow. The software also processes the traffic to determine whether it is in or out of profile. If the traffic is in-profile, the software directs the intermediate device to forward it. If the traffic is out-of-profile, the software directs the intermediate device to drop it, buffer it until it is in-profile, or mark it, as provided by the applicable traffic specifier.
With the explosive growth of the Internet and the World Wide Web, some ISPs have begun to host many hundreds of web sites, each generating hundreds if not thousands of traffic flows at any given time. Many ISPs have also started to install and run high-speed equipment, such as fiber optic transmission links and high-speed transmission protocols to boost the performance of their networks. Some equipment, for example, can support Gigabit transmission speeds. In particular, the Institute of Electrical and Electronics Engineers (IEEE) has started development on a new standard, the 802.3z standard, called “Gigabit” Ethernet. This standard is intended to support transmission speeds up to 1000 Mbps (i.e., 1 Gbps). The current software solutions for performing traffic shaping are becoming less efficient at performing their message processing tasks as transmission rates reach such high speeds. Accordingly, a need has arisen for traffic shaping solutions that are capable of operating efficiently at the high transmission speeds of current and future ISP equipment.